#pragma once

/** This enum contains values used for different item types in the game. **/
enum ITEM_TYPES {
    TERRAIN = -2,
    BACKGROUND = -1,
    AIR = 0,
    STONE = 1,
	GRASS = 2,
    DIRT = 3,
	COBBLESTONE = 4,
	WOODENPLANK = 5,
	SAPLING = 6,
    BEDROCK = 7,
	WATER = 8,
	STATIONARYWATER= 9,
	LAVA = 10,
	STATIONARYLAVA = 11,
	SAND = 12,
	GRAVEL = 13,
	GOLDORE = 14,
	IRONORE = 15,
	COALORE = 16,
	WOOD = 17,
	LEAVES = 18,
	SPONGE = 19,
	GLASS = 20,
	LAPISLAZULIORE = 21,
	LAPISLAZULIBLOCK = 22,
	DISPENSER = 23,
	SANDSTONE = 24,
	NOTEBLOCK = 25,
	BED = 26,
	POWEREDRAIL = 27,
	DETECTORRAIL = 28,
	COBWEB = 30,
	TALLGRASS = 31,
	DEADSHRUBS = 32,
	WOOL = 35,
	DANDELION = 37,
	ROSE = 38,
	BROWNMUSHROOM = 39,
	REDMUSHROOM = 40,
	GOLDBLOCK = 41,
	IRONBLOCK = 42,
	DOUBLESLABS = 43,
	SLABS = 44,
	BRICKBLOCK = 45,
	TNT = 46,
	BOOKSHELF = 47,
	MOSSSTONE = 48,
	OBSIDIAN = 49,
	TORCH = 50,
	FIRE = 51,
	MONSTERSPAWNER = 52,
	WOODENSTAIRS = 53,
	CHEST = 54,
	REDSTONEWIRE = 55,
	DIAMONDORE = 56,
	DIAMONDBLCOK = 57,
	CRAFTINGTABLE = 58,
	SEEDS = 59,
	FARMLAND = 60,
	FURNACE = 61,
	BURNINGFURNACE = 62,
	SIGNPOST = 63,
	WOODENDOOR = 64,
	LADDERS = 65,
	RAILS = 66,
	COBBLESTONESTAIRS = 67,
	WALLSIGN = 68,
	LEVER = 69,
	STONEPRESSUREPLATE = 70,
	IRONDOOR = 71,
	WOODENPRESSUREPLATE = 72,
	REDSTONEORE = 73,
	GLOWINGREDSTONEORE = 74,
	REDSTONETORCHOFF = 75,
	REDSTONETORCHON = 76,
	STONEBUTTON = 77,
	SNOW = 78,
	ICE = 79,
	SNOWBLOCK = 80,
	CACTUS = 81,
	CLAYBLOCK = 82,
	SUGARCANE = 83,
	JUKEBOX = 84,
	FENCE = 85,
	PUMPKIN = 86,
	NETHERRACK = 87,
	SOULSAND = 88,
	GLOWSTONEBLOCK = 89,
	PORTAL = 90,
	JACKOLANTERN = 91,
	CAKEBLOCK = 92,
	REDSTONEREPEATEROFF = 93,
	REDSTONEREPEATERON = 94,
	LOCKEDCHEST = 95,
	TRAPDOOR = 96,
    DIAMONDSHOVEL  = 277,
    DIAMONDPICKAXE = 278
};

/** Anything that can be held in an inventory. **/
class Item
{
public:
    /** Constructor. **/
    Item(unsigned int ID = 0);

    /** Item ID may either be a tool, item, object, or anything storable in an inventory. **/
    const unsigned int ID;
};
